স্প্রিং ওআরএম (Spring Object Relational Mapping) হল স্প্রিং ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ মডিউল, যা Hibernate, JPA (Java Persistence API) এবং অন্যান্য ORM টুলের সঙ্গে একীভূত হতে সাহায্য করে। এটি ডেটাবেস অপারেশন সহজ ও দক্ষ করে এবং Boilerplate কোড কমিয়ে দেয়।
স্প্রিং ORM মডিউল বিশেষত Spring Framework এবং Spring Boot এ ব্যবহৃত হয়, যেখানে ডেটাবেস-সংক্রান্ত কাজগুলো আরো দ্রুত এবং সহজভাবে করা যায়।
Spring Boot প্রোজেক্টে Maven বা Gradle ব্যবহার করে Hibernate এবং JPA এর জন্য নিচের ডিপেন্ডেন্সি যোগ করতে হয়:
Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
Gradle:
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'com.h2database:h2'
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String department;
// Getters and Setters
}
import org.springframework.data.jpa.repository.JpaRepository;
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class EmployeeService {
@Autowired
private EmployeeRepository employeeRepository;
public List<Employee> getAllEmployees() {
return employeeRepository.findAll();
}
public Employee saveEmployee(Employee employee) {
return employeeRepository.save(employee);
}
}
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/employees")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
@GetMapping
public List<Employee> getAllEmployees() {
return employeeService.getAllEmployees();
}
@PostMapping
public Employee createEmployee(@RequestBody Employee employee) {
return employeeService.saveEmployee(employee);
}
}
Spring Framework-এ XML বা Java Configuration দিয়ে ORM সেটআপ করা হয়।
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import javax.sql.DataSource;
@Configuration
public class HibernateConfig {
@Bean
public LocalSessionFactoryBean sessionFactory(DataSource dataSource) {
LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
sessionFactory.setPackagesToScan("com.example.model");
return sessionFactory;
}
}
Spring ORM ডেটাবেস এবং জাভার মধ্যে এক মসৃণ সংযোগ স্থাপন করে, যার ফলে ডেভেলপারদের কোড সহজ ও মেইনটেইনেবল হয়।
Read more